1. Field of the Invention
The present invention relates to a controller of a servomotor used as a driving source of various industrial machines including a machine tool, wire electric-discharge machine, and industrial robot.
2. Description of the Prior Art
A controller of a servomotor having been used so far will be described below by referring to a block diagram in FIG. 6.
A movement command MCMD supplied every position/speed loop processing cycle is input to an error counter 30 from a controller (not illustrated) such as a numerical controller or the like. The error counter 30 obtains a positional deviation by subtracting a positional feedback value Pf sent from a position/speed detector 34 built in a servomotor 33 (or position/speed detector set to a machine to be driven by the servomotor 33) every position/speed loop processing cycle from a movement command MCMD.
A speed command vc every position/speed loop processing cycle is obtained by multiplying the positional deviation by a positional loop gain Kp (block 31). Then, a speed deviation (=vc-vf) is obtained by subtracting a speed feedback value vf fed back from the position/speed detector 34 from the speed command vc. Then, a torque command (current command) Tc is obtained by performing proportional-integral processing by a speed compensator 32 in accordance with the speed deviation and moreover, current loop processing is performed to drive the servomotor 33 and movable parts of a machine 35.
The above described speed compensator 32 comprises an integral compensation term and a proportional compensation term. The integral compensation term has a speed-loop integral gain and the proportional compensation term has a speed-loop proportional gain. Moreover, in general, the above described servomotor is controlled by a software servo using a digital processor.
Herein, the above described speed-loop integral gain and proportional gain of the speed compensator 32 are set by parameters.
These set values are determined while checking the stability of a servo system.
To improve a control performance, it is necessary to raise a speed loop processing gain and moreover, a current loop processing gain. However, when the torque command Tc is saturated due to rapid traverse of a movable part, that is, when a machine is driven up to an acceleration/deceleration limit at a short acceleration/deceleration time constant, speed loop processing tends to be unstable. Therefore, set values of a speed loop gain and a current loop gain have been determined so far so that speed loop processing does not become unstable even if a machine is driven and controlled at a short acceleration/deceleration time constant (that is, at a large acceleration). As a result, the speed loop gain and current loop gain are kept relatively low and therefore, it is limited to improve the control performance.
As described above, a speed loop gain (and also, a current loop gain) is determined so as to prevent speed loop processing from becoming unstable due to saturation of a torque command or the like. Therefore, even when a speed loop gain is kept in an area having full scope in which a torque command is not saturated (that is, even when a determined gain can be further raised), control is continued with the gain determined low. Therefore, the control performance is prevented from being improved.
Particularly, in case of a machine tool for performing cutting by driving a servomotor, the cutting accuracy is controlled by a speed loop gain. Therefore, the fact that a speed loop gain cannot be sufficiently raised results in the fact that the cutting accuracy cannot be sufficiently raised.
Changing speed loop gains in accordance with an operation mode in a controller is disclosed in itself in Japanese Patent Application Laid-Open No. 3-121738. The controller controls the rotation of a spindle of a machine tool through a motor and the machine tool is operated in either of a turning operation mode for turning a rotating workpiece and a position control mode (C-axis operation mode) for controlling a rotational position of the spindle. When the turning operation mode is set by control mode change means, lower position loop gain and speed loop gain are used. On the other hand, when the turning operation mode is changed to the position control mode while turning is not performed, a higher loop gain and speed loop gain are used for acquiring the response characteristic suitable for cutting in the C-axis operation.
In case of the above controller, however, a motor for driving a machine tool is a spindle motor, not a servomotor, and the controller is not provided aiming at accomplishing a high accuracy by carrying out gain changing. Further, it is not suggested to change a current loop processing configuration to a proper configuration in accordance with the case of a turning operation mode or a positioning operation mode.
As described above, a conventional controller cannot simultaneously satisfy improvement of a control performance in servomotor control and stable control in an area in which a controlled variable is saturated.